//===COMMENT===

package bubble3d.interaction {

	import flash.events.*;
	import bubble3d.interaction.Interactive3dModel;
	
	//
	//	Defines the minimum functions a ModelInteraction class must implement
	//
	
	public interface IModelInteraction {
		
		// Required reset; called by the ModelInteractionCenter when modules need to be reset
		
		function reset():void;
	
		// Turns on and registers the interaction component
	
		function enable():void;
	
		// Sets the callbacks for mouse events
	
		function setEvents():void;
	
		// Resets the mouse events to newly rendered data
	
		function updateEvents():void;
	
		// Responds to mouse events on rendered faces
	
		function handleFaceEvent(eventType:String, model:Interactive3dModel):void;
	
		// Responds to keypresses
	
		function handleKey(key:String, model:Interactive3dModel):void;
	
		// Runs on render cycle completion
	
		function cycleComplete():void;
	}

}